package main

import (
	"fmt"
	"reflect"
)

func main() {
	var num float64 = 2.13
	fmt.Println(num)

	//newValue := reflect.ValueOf(num) // 这个方法所得到的值不能继续修改
	pointer := reflect.ValueOf(&num) //得到上面num的指针
	newValue := pointer.Elem()       // 得到指针的值

	fmt.Println(newValue.Type())
	fmt.Println(newValue.Kind())
	fmt.Println(newValue.CanSet()) //判断是否可以改变

	if newValue.CanSet() {
		newValue.SetFloat(3.14) //设置值的时候一定要设定他的类型
	}
	fmt.Println(num)
}
